#pragma once
#include "INoiseGenerator.h"
#include <math.h>
#include "Interpolaters.h"

class PerlinNoise :
	public INoiseGenerator 
{
private:
	static int const permutation[];
	int  p[512];
	bool start = true;
	

	float fade(float x);
	float grad(int hash, float x, float y, float z);
	float noise(float x, float y, float z);
public:
	float Get1D(float x) override;
	float Get2D(float x, float y) override;
	PerlinNoise();
	~PerlinNoise();
};

